package com.sky.service;

import com.sky.dto.AdminLoginDTO;
import com.sky.entity.Admin;
import com.sky.vo.AdminLoginVO;
import java.util.Map;

public interface AdminService {
    /**
     * 管理员登录
     * @param adminLoginDTO 登录信息
     * @return 登录结果
     */
    AdminLoginVO login(AdminLoginDTO adminLoginDTO);

    /**
     * 退出登录
     */
    void logout();

    /**
     * 分页查询管理员
     * @param map 查询条件
     * @return 管理员列表
     */
    Map<String, Object> selectByPage(Map<String, Object> map);

    /**
     * 新增管理员
     * @param admin 管理员对象
     */
    void insert(Admin admin);

    /**
     * 根据id查询管理员
     * @param id 管理员id
     * @return 管理员对象
     */
    Admin selectById(Long id);

    /**
     * 更新管理员信息
     * @param admin 管理员对象
     */
    void update(Admin admin);

    /**
     * 修改管理员密码
     * @param adminId 管理员id
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     */
    void updatePassword(Long adminId, String oldPassword, String newPassword);

    /**
     * 更新管理员状态
     * @param id 管理员id
     * @param status 状态
     */
    void updateStatus(Long id, String status);

    /**
     * 删除管理员
     * @param id 管理员id
     */
    void deleteById(Long id);
}